package com.kehutong.wxapi.request;

import org.coraframework.json.annotation.JSONField;

import java.util.List;

/**
 * @author: liukunlong
 * @date: 2021-03-05 09:38
 */
public class GroupChatListRequest {
    /**
     * 调用接口凭证
     */
    private String accessToken;
    /**
     * 客户群跟进状态过滤。
     * 0 - 所有列表(即不过滤)
     * 1 - 离职待继承
     * 2 - 离职继承中
     * 3 - 离职继承完成
     * 默认为0
     *
     */ /**
     * status_filter : 0
     * owner_filter : {"userid_list":["abel"]}
     * cursor : r9FqSqsI8fgNbHLHE5QoCP50UIg2cFQbfma3l2QsmwI
     * limit : 10
     */

    @JSONField(name = "status_filter")
    private Integer statusFilter;
    /**
     * 群主过滤。
     * 如果不填，表示获取应用可见范围内全部群主的数据（但是不建议这么用，如果可见范围人数超过1000人，为了防止数据包过大，会报错 81017）
     */
    @JSONField(name = "owner_filter")
    private OwnerFilterDTO ownerFilter;
    /**
     * 用于分页查询的游标，字符串类型，由上一次调用返回，首次调用不填
     */
    @JSONField(name = "cursor")
    private String cursor;
    /**
     * 分页，预期请求的数据量，取值范围 1 ~ 1000
     */
    @JSONField(name = "limit")
    private Integer limit;


    public String getAccessToken() {
        return accessToken;
    }

    public void setAccessToken(String accessToken) {
        this.accessToken = accessToken;
    }

    public Integer getStatusFilter() {
        return statusFilter;
    }

    public void setStatusFilter(Integer statusFilter) {
        this.statusFilter = statusFilter;
    }

    public OwnerFilterDTO getOwnerFilter() {
        return ownerFilter;
    }

    public void setOwnerFilter(OwnerFilterDTO ownerFilter) {
        this.ownerFilter = ownerFilter;
    }

    public String getCursor() {
        return cursor;
    }

    public void setCursor(String cursor) {
        this.cursor = cursor;
    }

    public Integer getLimit() {
        return limit;
    }

    public void setLimit(Integer limit) {
        this.limit = limit;
    }

    /**
     * 群主过滤
     */
    public static class OwnerFilterDTO {
        /**
         * 用户ID列表。最多100个
         */
        @JSONField(name = "userid_list")
        private List<String> useridList;

        public List<String> getUseridList() {
            return useridList;
        }

        public void setUseridList(List<String> useridList) {
            this.useridList = useridList;
        }
    }
}
